/*
 * DynamicJasper: A library for creating reports dynamically by specifying
 * columns, groups, styles, etc. at runtime. It also saves a lot of development
 * time in many cases! (http://sourceforge.net/projects/dynamicjasper)
 *
 * Copyright (C) 2008  FDV Solutions (http://www.fdvsolutions.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 *
 * License as published by the Free Software Foundation; either
 *
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 *
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 */

package ar.com.fdvs.dj.util;

import net.sf.jasperreports.engine.JasperReportsContext;
import net.sf.jasperreports.engine.design.JRJdtCompiler;
import net.sf.jasperreports.engine.util.JRClassLoader;

import java.util.Map;

/**
 * @author Alejandro Gomez (alejandro.gomez@fdvsolutions.com)
 *         Date: Aug 15, 2007
 *         Time: 1:47:28 PM
 */
public class DJJRJdtCompiler extends JRJdtCompiler {

    /**
     * @param jasperReportsContext
     */
    public DJJRJdtCompiler(JasperReportsContext jasperReportsContext) {
        super(jasperReportsContext);
    }

    protected Map<String,String> getJdtSettings() {
        final Map<String,String> settings = super.getJdtSettings();
        final String encoding = System.getProperty("file.encoding");
        if (encoding != null) {
//            settings.put(CompilerOptions.OPTION_Encoding, encoding); //this needs and import from here: import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
            settings.put("org.eclipse.jdt.core.encoding", encoding);
        }
        return settings;
    }

    public static boolean isValid() {
        try {
            return JRClassLoader.loadClassForName("org.eclipse.jdt.internal.compiler.Compiler") != null;
        } catch (ClassNotFoundException ex) {
            return false;
        } catch (NoClassDefFoundError e) {
			return false;
		}
    }
}
